
package serviceWeb;

import java.sql.SQLException;
import java.util.Iterator;
import java.util.Map;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;

/**
 * Fonctions utilitaires utilisées par plusieurs ServerResource
 */
public class FonctionsServerResource
{
    /**
     * Ajouter les contraintes de clé primaire et étrangère à la fin du document XML
     * @param doc : le document XML à compléter
     * @param bdxml : l'XML contenant les contraintes
     * @param nomBD : nom de la base
     * @param nomTable : nom de la table
     */
    public static void ajouterContraintes(Document doc, EchangeBDXML bdxml, String nomBD, String nomTable) throws SQLException
    {
        //Ajouter un élément précisant quelle est la colonne de la clé primaire
        Element id = doc.createElement("idprimarykey");
        Node tableNode = doc.getFirstChild();
        tableNode.appendChild(id);
        id.appendChild(doc.createTextNode(bdxml.getNomIdentifiant(nomBD, nomTable)));

        //Ajouter des éléments précisant quelles sont les clés étrangères
        Map<String, String> foreignKeys = bdxml.getForeignKeys(nomBD, nomTable);

        Iterator itr = foreignKeys.entrySet().iterator();

        while(itr.hasNext())
        {
            Map.Entry pairs = (Map.Entry) itr.next();
            id = doc.createElement("idforeignkey");
            tableNode.appendChild(id);

            id.setAttribute("referenceTable", (String) pairs.getValue());
            id.appendChild(doc.createTextNode((String) pairs.getKey()));
        }
    }

}
